#ifndef __ELEMENT_DTD__
#define __ELEMENT_DTD__

#include <vector>
#include <map>
#include <string>
#include "AttributeDTD.h"
#include "StructureDTD.h"

class ElementDTD
{
	private:
		string name;
		//vector<AttributeDTD*> atts;
		std::map<string, AttributeDTD*> atts;
		StructureDTD * s;

	public:
		ElementDTD(const char *name, StructureDTD * s);
        	string getName() const;
		int addAttribute(AttributeDTD* att);
		AttributeDTD* getAttributeByName(string name) const;
		virtual void display() const;
		vector<string> * getChildren() const;
		string getRegExp() const;
		virtual ~ElementDTD () {}
};

#endif
